把不穩定的新功能放在外圍,不影響核心。
ADP(依賴反向原則)的意思是:
穩定的核心不應該依賴不穩定的新手功能,
反而是新手要依賴核心,這樣核心才不會被拖累。
想像學校的足球比賽。
校隊的老選手(核心)非常穩定,他們懂規則、技巧很好。
今天老師想讓新同學(新功能)也來參加試試看。
如果比賽全靠新同學,可能會亂掉;
但如果安排新同學在外圍,先跟著老選手踢,就算他們出錯,
核心的比賽策略還是穩定的。
在程式設計裡,我們會把穩定的模組(像數學計算、登入系統)放在核心。
而不穩定的模組(像新的 API、新的外掛功能)放在外圍,依賴核心規則。
這樣做的好處:
小程式例子(JavaScript):
// 核心:穩定的計算機
class Calculator {
add(a, b) {
return a + b;
}
}
// 新功能:還不太穩定的「AI 計算」
class AICalculator {
constructor(coreCalculator) {
this.core = coreCalculator; // 依賴核心
}
smartAdd(a, b) {
// 嘗試做點花樣,但最後還是靠核心計算
console.log("AI 嘗試計算中...");
return this.core.add(a, b);
}
}
const calc = new Calculator();
const aiCalc = new AICalculator(calc);
console.log(aiCalc.smartAdd(2, 3)); // 5
這樣即使 AI 部分不穩定,核心的 Calculator 還是可靠的。
ADP 就像是「新手跟著老手」,確保比賽不會亂掉。
在程式裡,讓核心保持穩定,把新功能放在外圍依賴核心。
你會讓他影響整個遊戲的規則,還是先放在外圍試試看?為什麼?